Motion estimation is an effective inter-frame coding technique to exploit temporal redundancy in video sequences. Motion-compensated inter-frame coding has been widely used in various international video coding standards. The motion estimation adopted in various coding standards is often a block-based technique, where motion information such as coding mode and motion vector is determined for each macroblock or similar block configuration. In addition, intra-coding is also adaptively applied, where the picture is processed without reference to any other picture. The inter-predicted or intra-predicted residues are usually further processed by transformation, quantization, and entropy coding to generate a compressed video bitstream. During the encoding process, coding artifacts are introduced, particularly by the quantization process. In order to alleviate the coding artifacts, in newer coding systems, additional processing is often applied to the reconstructed video to enhance picture quality. The additional processing is configured in an in-loop operation so that the encoder and decoder may derive the same reference pictures for proper operation.
FIG. 1 illustrates an exemplary adaptive inter/intra video coding system incorporating in-loop filter processing. For inter-prediction, Motion Estimation (ME)/Motion Compensation (MC) 112 is used to provide prediction data based on video data from other picture or pictures. Switch 114 selects Intra Prediction 110 or inter-prediction data from ME/MC 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called prediction residues or residues. The prediction error is then processed by Transformation (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to form a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion, mode, and other information associated with the image unit. The side information may also be processed by entropy coding to reduce required bandwidth. Accordingly, the side information data is also provided to Entropy Encoder 122 as shown in FIG. 1 (the motion/mode paths to Entropy Encoder 122 are not shown). When the inter-prediction mode is used, a previously reconstructed reference picture or pictures have to be used to form prediction residues. Therefore, a reconstruction loop is used to generate reconstructed pictures at the encoder end. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the processed residues. The processed residues are then added back to prediction data 136 by Reconstruction (REC) 128 to reconstruct the video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
As shown in FIG. 1, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to the series of processing. Accordingly, various loop processing is applied to the reconstructed video data before the reconstructed video data is used as prediction data in order to improve video quality. In the High Efficiency Video Coding (HEVC) standard being developed, Deblocking Filter (DF) 130, Sample Adaptive Offset (SAO) 131 and Adaptive Loop Filter (ALF) 132 have been developed to enhance picture quality. The Deblocking Filter (DF) 130 is applied to boundary pixels and the DF processing is dependent on the underlying pixel data and coding information associated with the corresponding blocks. There is no DF-specific side information needs to be incorporated in the video bitstream. On the other hand, the SAO and ALF processing are adaptive, where filter information such as filter parameters and filter type may be dynamically changed according to the underlying video data. Therefore, filter information associated with SAO and ALF is incorporated in the video bitstream so that a decoder can properly recover the required information. Therefore, filter information from SAO and ALF is provided to Entropy Encoder 122 for incorporation into the bitstream. In FIG. 1, DF 130 is applied to the reconstructed video first; SAO 131 is then applied to DF-processed video; and ALF 132 is applied to SAO-processed video. However, the processing order among DF, SAO and ALF may be re-arranged. In H.264/AVC video standard, the loop filter processing only includes DF. In the High Efficiency Video Coding (HEVC) video standard being developed, the loop filter processing includes DF and SAO.
In HEVC Test Model Version 5.0 (HM-5.0), different image unit structures, including slice and tile, are introduced. A picture is partitioned into multiple slices or tiles, where the image unit partition is often aligned with boundaries of Largest Coding Units (LCUs). Within each picture, the processing sequence of the tiles may be according to raster scan order. Slices and tiles can be configured independently. Therefore, one slice may run across multiple tiles, and one tile may also run across multiple slices. Loop filter processing such as DF, SAO and ALF may depend on neighboring pixels. Accordingly, the loop filter processing for a current tile or slice may have to wait until some neighboring slices or tiles become available. There are two types of tiles: independent tiles and dependent tiles. Slices or independent tiles are mainly designed for parallel processing, where reconstructing LCUs (e.g. MV prediction, intra prediction, entropy coding) within one slice or tile does not need any data from other tiles. However, loop filtering can be applied across slice or tile boundaries or restricted to within a slice or a tile according to a flag. While in the mode that coding process is applied within the slice or independent tile, the loop filter processing may still need some information from a neighboring slice or tile. For example, when DF is applied across a block boundary, the DF process depends on the QP (quantization parameter) values from both sides of the block boundary. When DF is applied to a slice or tile boundary aligned with a block boundary, the DF process depends on the QP values on both sides of the slice or tile. This will be a problem if the coding process is intended for not crossing the slice or tile boundary. Accordingly, it is desirable to develop a method and apparatus that can overcome dependency on parameter across a slice or tile boundary.